package com.ruoyi.invoice.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 发票数据对象 tax_item
 * 
 * @author XU
 * @date 2025-03-13
 */
public class TaxItem extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specificationModel;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private Long quantity;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal uninPrice;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal amount;

    /** 税率 */
    @Excel(name = "税率")
    private String taxRate;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal taxAmount;

    /** 征税项目 */
    @Excel(name = "征税项目")
    private Long taxationItem;

    /** 计税方法 */
    @Excel(name = "计税方法")
    private Long taxCalculationMethod;

    /** 不含税金额 */
    @Excel(name = "不含税金额")
    private BigDecimal taxNotIncluded;

    /** 价税合计 */
    @Excel(name = "价税合计")
    private BigDecimal totalValueTax;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setSpecificationModel(String specificationModel) 
    {
        this.specificationModel = specificationModel;
    }

    public String getSpecificationModel() 
    {
        return specificationModel;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setQuantity(Long quantity) 
    {
        this.quantity = quantity;
    }

    public Long getQuantity() 
    {
        return quantity;
    }
    public void setUninPrice(BigDecimal uninPrice) 
    {
        this.uninPrice = uninPrice;
    }

    public BigDecimal getUninPrice() 
    {
        return uninPrice;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setTaxRate(String taxRate) 
    {
        this.taxRate = taxRate;
    }

    public String getTaxRate() 
    {
        return taxRate;
    }
    public void setTaxAmount(BigDecimal taxAmount) 
    {
        this.taxAmount = taxAmount;
    }

    public BigDecimal getTaxAmount() 
    {
        return taxAmount;
    }
    public void setTaxationItem(Long taxationItem) 
    {
        this.taxationItem = taxationItem;
    }

    public Long getTaxationItem() 
    {
        return taxationItem;
    }
    public void setTaxCalculationMethod(Long taxCalculationMethod) 
    {
        this.taxCalculationMethod = taxCalculationMethod;
    }

    public Long getTaxCalculationMethod() 
    {
        return taxCalculationMethod;
    }
    public void setTaxNotIncluded(BigDecimal taxNotIncluded) 
    {
        this.taxNotIncluded = taxNotIncluded;
    }

    public BigDecimal getTaxNotIncluded() 
    {
        return taxNotIncluded;
    }
    public void setTotalValueTax(BigDecimal totalValueTax) 
    {
        this.totalValueTax = totalValueTax;
    }

    public BigDecimal getTotalValueTax() 
    {
        return totalValueTax;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectName", getProjectName())
            .append("specificationModel", getSpecificationModel())
            .append("unit", getUnit())
            .append("quantity", getQuantity())
            .append("uninPrice", getUninPrice())
            .append("amount", getAmount())
            .append("taxRate", getTaxRate())
            .append("taxAmount", getTaxAmount())
            .append("taxationItem", getTaxationItem())
            .append("taxCalculationMethod", getTaxCalculationMethod())
            .append("taxNotIncluded", getTaxNotIncluded())
            .append("totalValueTax", getTotalValueTax())
            .toString();
    }
}
